package com.mzpai.product.service;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.PageInfo;
import com.mzpai.product.model.StoreProduct;
import com.mzpai.product.vo.StoreProductDto;
import com.mzpai.product.vo.StoreProductSkuDto;
import com.mzpai.product.vo.UpdateStoreProductWaitPutReqVo;
import com.mzpai.service.BaseService;
/**
 *
 * <b>使用帮助 | Service</b><br>
 *
 * yanglijun 2021-03-15 18:00:20
 * 
 *  @version 1.0.0
 *
 */
public interface StoreProductService extends BaseService<StoreProduct> {

	/**
	 * 根据商品主键查询基础商品
	 * @param map
	 * @return
	 */
	StoreProduct queryByPrimaryId(Integer id);
	
	/**
	 * 根据商品编码查询基础商品
	 * @param map
	 * @return
	 */
	List<StoreProduct> queryByProductCodeAndStoreId(String productCode,Integer storeId);
	
	/**
	 * 根据商品编号更新待上架商品
	 * @param productCode
	 */
	void updateInfo(UpdateStoreProductWaitPutReqVo updateStoreProductWaitPutReqVo);
	
	/**
	 * 保存商品信息
	 * @param target
	 * @return
	 */

	int saveInfo(UpdateStoreProductWaitPutReqVo vo);

	/**
	 * 翻译信息
	 * @param id
	 * @return
	 */
	StoreProduct queryViewById(Integer id);
	
	List<StoreProduct> getListProductCodeIsNull();
	
	/**
	 * 根据主键删除商品
	 * @param id
	 * @return
	 */
	void deleteByProductId(Integer id);
	
	/**
	 * 根据主键删除主表及子表
	 * @param id
	 * @return
	 */
	void delStoreProductAndDetailTable(Integer productId,Integer storeId);
	
	/**
	 * 统计总数
	 * @param productId
	 */
	Integer countTotal(Map<String,Object> map);
	
	PageInfo<StoreProductDto> getProcuctAndBrandListByPage(Map<String,Object> map, Integer pageNum,Integer pageSize);
	
	List<String> getProductCodeList(@Param("storeId")Integer storeId);
	
	/**
	 * 查询店铺下商品规格-SKU数据
	 * @param map
	 * @return
	 */
	PageInfo<StoreProductSkuDto> getStoreProductSkuListByPage(Map<String,Object> map, Integer pageNum,Integer pageSize);
	
	
	/**
	 * 查询店铺下商品规格-SKU数据
	 * @param map
	 * @return
	 */
	List<StoreProductSkuDto> getStoreProductSkuByBarCode(Map<String,Object> map);
	
	
	
	
}